package com.cn.wanxi.service.impl;

import com.cn.wanxi.dao.NavDaoa;
import com.cn.wanxi.dao.NewsDao;
import com.cn.wanxi.model.NavModel;
import com.cn.wanxi.model.NewsModel;
import com.cn.wanxi.service.NewsService;
import com.cn.wanxi.util.IOTool;
import com.cn.wanxi.util.PathEnum;
import com.cn.wanxi.util.PathNote;
import com.cn.wanxi.util.Tool;

import java.io.File;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

public class NewsServiceImpl implements NewsService {
    @Override
    public List<NewsModel> getNewsModelListForHomePage() {
        //        1.创建文件
//        String path = "E:\\wanxi\\step-3\\canyin03-0524\\web\\note";
//        String fileName = "newsForHomePage.txt";
//       因为创建文件和公司信息的代码一致，所以将代码提取到工具类里面
//        因为工具类里面多数 情况下都是提供给外面的接口调用，
//        所以做了一个私有无参数的构造方法，目的是不能创建对象实例化，提升效率
//        当对象实例化时，会占用时间，会占用内存；经常用到的工具类，
//        如果是很少用这个工具类，则不需要创建私有的构造方法，直接实例化调用
//        File file = IOTool.createNote(PathNote.PATH, PathNote.FILE_NAME_NEWS_FOR_HOME_PAGE);
//        2.封装导航数据到集合
        List<String> list = setDaoData();
//        3.写入数据
        IOTool.writeData(PathEnum.FILE_NAME_NEWS_FOR_HOME_PAGE.getPath(), list);
//        4.读取数据
        String result = IOTool.readData();
//        5.封装集合

        return setList(result);
    }

    private List<NewsModel> setList(String result) {
        List<NewsModel> list = new ArrayList<>();
        String[] results = result.split(PathNote.SEPARATOR);
        String title = Tool.replace(results[0]);
        String content = results[1];
        content = Tool.replace(content);
        String[] titles = title.split(",");
        String[] contents = content.split(",");
        int length = titles.length;
        for (int i = 0; i < length; i++) {
            NewsModel newsModel = new NewsModel();
            newsModel.setTitle(titles[i]);
            newsModel.setContent(contents[i]);
            list.add(newsModel);
        }
        return list;
    }

    private List<String> setDaoData() {
        List<String> list = new ArrayList<>();
        NewsDao newsDao = new NewsDao();
//        将数组变成字符串
        list.add(Arrays.toString(newsDao.getTitlesForHomePage()));
        list.add(Arrays.toString(newsDao.getContentsForHomePage()));
        return list;
    }
}
